package easy;

import java.util.List;

/**
 * 给你一个数组 items ，其中 items[i] = [typei, colori, namei] ，描述第 i 件物品的类型、颜色以及名称。
 *
 * 另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。
 *
 * 如果第 i 件物品能满足下述条件之一，则认为该物品与给定的检索规则 匹配 ：
 *
 * ruleKey == "type" 且 ruleValue == typei 。
 * ruleKey == "color" 且 ruleValue == colori 。
 * ruleKey == "name" 且 ruleValue == namei 。
 * 统计并返回 匹配检索规则的物品数量 。
 */
public class countMatches {

    public static void main(String[] args) {

    }

    public static int myCode(List<List<String>> items, String ruleKey, String ruleValue) {

        int ret = 0;
        /**
         * 可以在循环外确认ruleKey，没必要每次循环就判断一次
         */
        for (List<String> item : items) {
            if (ruleKey.equals("type")) {
                if (item.get(0).equals(ruleValue)) {
                    ret += 1;
                }
            } else if (ruleKey.equals("color")) {
                if (item.get(1).equals(ruleValue)) {
                    ret += 1;
                }
            } else {// 这里使用else也有问题，如果是不存在的key数据就会出问题。
                if (item.get(2).equals(ruleValue)) {
                    ret += 1;
                }
            }
        }
        return ret;
    }

    public static int ans(List<List<String>> items, String ruleKey, String ruleValue) {
        int ret = 0;
        int a = -1;
        if (ruleKey.equals("type")) {
            a = 0;
        } else if (ruleKey.equals("color")) {
            a = 1;
        } else if (ruleKey.equals("name")){
            a = 2;
        }

        for (List<String> item : items) {
            if (item.get(a).equals(ruleValue)) {
                ret += 1;
            }
        }
        return ret;
    }
}
